package fr.uniscol.siecle.parsers;

import java.io.File;
import java.io.IOException;
import java.text.ParseException;

import org.apache.log4j.Logger;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

import fr.uniscol.siecle.model.AnneeScolaire;
import fr.uniscol.siecle.model.Communs;
import fr.uniscol.siecle.model.FichierSIECLE;
import fr.uniscol.siecle.model.UAJ;

public class FichierSIECLECommunsParser extends IFichierSIECLEParser {

	public static Logger log = Logger.getLogger(FichierSIECLECommunsParser.class);
	
	@Override
	public FichierSIECLE buildModel(Document doc, ParsingResults results) {
		
		FichierSIECLE model = new Communs();
		
		Element eDonnees = doc.getRootElement().getChild("DONNEES");
		Element eUaj = eDonnees.getChild("UAJ");
		Element eAnneeScolaire = eDonnees.getChild("ANNEE_SCOLAIRE");
		Element eAnneeScolaireAd = eDonnees.getChild("ANNEE_SCOLAIRE_AD");
		
		UAJ uaj = new UAJ();
		uaj.setEtab_uaj_id(eUaj.getChildText("ETAB_UAJ_ID"));
		uaj.setNum_siren(eUaj.getChildText("NUM_SIREN"));
		uaj.setDenom_principale(eUaj.getChildText("DENOM_PRINC"));
		uaj.setDenom_complete(eUaj.getChildText("DENOM_COMPL"));
		uaj.setNom_responsable(eUaj.getChildText("NOM_RESP"));
		uaj.setQual_responsable(eUaj.getChildText("QUAL_RESP"));
		uaj.setLigne_adresse_1(eUaj.getChildText("LIGNE1_ADRESSE"));
		uaj.setLigne_adresse_2(eUaj.getChildText("LIGNE2_ADRESSE"));
		uaj.setLigne_adresse_3(eUaj.getChildText("LIGNE3_ADRESSE"));
		uaj.setBoite_postale(eUaj.getChildText("BOITE_POST"));
		uaj.setCommune_etrangere(eUaj.getChildText("COMMUNE_ETRANGERE"));
		uaj.setTelephone(eUaj.getChildText("TELEPHONE"));
		uaj.setEmail_1(eUaj.getChildText("MEL_1"));
		uaj.setCode_type_etab(eUaj.getChildText("CODE_TYPE_ETAB"));
		uaj.setCode_secteur(eUaj.getChildText("SECTEUR_CODE"));
		uaj.setCode_postal(eUaj.getChildText("CODE_POSTAL"));
		uaj.setCode_commune_insee(eUaj.getChildText("CODE_COMMUNE_INSEE"));
		uaj.setCode_pays(eUaj.getChildText("CODE_PAYS"));
		
		((Communs)model).setUaj(uaj);
		
		AnneeScolaire anneeScolaire = new AnneeScolaire();
		anneeScolaire.setDate_debut_eleves(eAnneeScolaire.getChildText("DATE_DEBUT_ELEVE"));
		anneeScolaire.setDate_fin_eleves(eAnneeScolaire.getChildText("DATE_FIN_ELEVE"));
		anneeScolaire.setDate_debut_profs(eAnneeScolaire.getChildText("DATE_DEBUT_PROF"));
		anneeScolaire.setDate_fin_profs(eAnneeScolaire.getChildText("DATE_FIN_PROF"));
		((Communs)model).setAnneeScolaire(anneeScolaire);
		
		AnneeScolaire anneeScolaireAD = new AnneeScolaire();
		anneeScolaireAD.setDate_debut_eleves(eAnneeScolaireAd.getChildText("DATE_DEBUT_ELEVE"));
		anneeScolaireAD.setDate_fin_eleves(eAnneeScolaireAd.getChildText("DATE_FIN_ELEVE"));
		anneeScolaireAD.setDate_debut_profs(eAnneeScolaireAd.getChildText("DATE_DEBUT_PROF"));
		anneeScolaireAD.setDate_fin_profs(eAnneeScolaireAd.getChildText("DATE_FIN_PROF"));
		((Communs)model).setAnneeScolaireAD(anneeScolaireAD);
		
		return model;
	}
}
